Computer science homework – chapters 50, 51 and 52
Link to home page
Definitions
- Structured approach: Using only sequences, selection and iteration to maintain clarity
- Parallel computing: Having multiple processors executing instructions simultaneously
- Concurrent processing: Giving multiple tasks small time slices giving the illusion that instructions are being run simultaneously using only one proccessor
- Computable problems: a problem that can always be solved by an algorithm within a reasonable time scale
- Intractable problems: Problems to large in scale to solve in a reasonable amount of time. eg cracking a secure password
- Time complexity: A way of measuring how long algorythms take to run as the size of inputs increase
Designing algorythms
When designing an algorythm plan it using a flow chart or pseudocode to plan your projects and remove possible logic errors before they occur
Problem solving methods and techniques
- Enumeration: The brute force solution, very inefficient and only works when there are a finnite number of possible solutions
- Simulation: Abstracting a problem down to it's key components to understand the how the problem works. This could also invole a phisical or digital model to study it's behavior
- Theoretical approach: According to the textbook this is just the same as enumeration
- Creative solution: The textbook lists this but doesn't acctualy explain what it is, presumably it is combining other problem solving methods to solve the problem quickly and efficiently
- Divide and conquer: Iteration where you remove possible solution every iteration, eg binary search
- Abstraction: Simplifying a problem down to it's key components
- Automation: building and using models to test results
- Visualisation: Representing data differently to better understand how it works
- Backtracking: Trying different sequences of solutions and then going back in the sequence and retrying a different route (brute force with extra steps). eg a maze
- Data mining: Analysing large data sets to find patterns and predict future patterns
- Heuristic methods: Approximating the solution to a problem to save time in exchange for accuracy
- Performance modelling: Using a computer simulation instead of testing in the real world to save time and money
- Pipelining: Splitting a task into smaller parts and doing each part concurently (jsut parallel computing?). eg done in the FDE cycle
Pictured bellow: an abstraction of how another textbook homework made me feel. It is very large because I was very sad.